LLaMA-Factory 微调 DeepSeek 模型教程
参考:LLaMA-Factory 官方文档、CSDN DeepSeek技术社区微调教程、博客园 LLaMA-Factory 本地微调Deepseek R1 1.5B
1. 简介
LLaMA-Factory 是一个开源、低代码的大模型微调框架,支持主流大模型(如 LLaMA、Qwen、DeepSeek 等)的指令微调、LoRA 微调、全量微调等。其 WebUI 友好,适合初学者和开发者快速上手。
本教程以 DeepSeek R1 1.5B 模型为例,介绍如何使用 LLaMA-Factory 进行微调。
2. 环境搭建
2.1 克隆仓库并安装依赖
bash
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
# 建议使用 Python 3.10
conda create -n llama_factory python=3.10
conda activate llama_factory
pip install -e ".[torch,metrics]"
2.2 检查 PyTorch GPU 支持
python
import torch
print(torch.cuda.is_available()) # True 表示可用
2.3 启动 WebUI
bash
llamafactory-cli webui
浏览器访问:http://127.0.0.1:7860
3. 下载 DeepSeek 基座模型
建议提前从 HuggingFace 下载 DeepSeek 模型(如 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B)。
bash
pip install -U huggingface_hub
export HF_HOME=/root/Hugging-Face # 可选,指定模型缓存目录
export HF_ENDPOINT=https://hf-mirror.com # 可选,国内镜像加速
huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
下载完成后,模型路径如:
/root/Hugging-Face/hub/models--deepseek-ai--DeepSeek-R1-Distill-Qwen-1.5B/snapshots/<commit_id>
4. 数据集准备
LLaMA-Factory 支持 Alpaca 格式和 ShareGPT 格式。以 Alpaca 格式为例:
json
[
{
"instruction": "请介绍一下你自己",
"input": "",
"output": "您好,我是DeepSeek模型,很高兴为您服务!"
}
]
- 将数据集保存为
test.json
,放入LLaMA-Factory/data/
目录。 - 编辑
LLaMA-Factory/data/dataset_info.json
,添加:
json
"test": {
"file_name": "test.json"
}
5. 微调流程
5.1 WebUI 配置
- 模型路径:填写下载好的 DeepSeek 模型快照路径。
- 微调方法:推荐选择 LoRA(低资源消耗,适合个人显卡)。
- 数据集:选择刚刚注册的数据集名(如 test)。
- 训练参数:
- 训练轮次(epochs):如 3~10
- 学习率(learning rate):如 5e-5
- 批次大小(batch size):根据显存调整
- 其余参数可按默认或根据实际需求调整
- LoRA 参数:rank 可设为 8~16,越大效果越好但显存消耗增加。
5.2 启动训练
点击"开始训练",等待训练完成。可在右侧观察损失曲线。
6. 评估与导出
6.1 评估效果
- 训练完成后,可在"评估"或"对话"界面加载微调后的模型,输入指令测试效果。
6.2 导出合并模型
- 切换到"导出"界面,填写检查点路径与导出目录,点击导出。
- 支持导出为 safetensors 格式,便于后续部署或量化。
7. 常见问题与建议
- 显存不足:优先选择 LoRA 微调,batch size 设小,或使用 QLoRA 量化
- 数据格式报错:确保数据集字段为 instruction、input、output,且为 UTF-8 编码
- 模型路径错误:需填写到具体 snapshot 目录
- 训练慢/卡顿:建议使用 24G 及以上显存的 GPU